import os


# 定义电影类
class Movie:
    def __init__(self, no, mingcheng, piaofang, pingfen):
        self.no = no
        self.mingcheng = mingcheng
        self.piaofang = piaofang
        self.pingfen = pingfen


# 定义电影管理类
class Movie_ms:
    moveis = []

    def __init__(self):
        pass

    # 定义菜单
    def menu(self):

        while 1:
            print("1-从文件中读书数据保存到列表-（请输入数字1）")
            print("2-显示前10条数据和后10条数据-（请输入数字2）")
            print("3-对数据进行汇总统计-（请输入数字3）")
            print("4-把统计数据以csv的形式保存到文件中-（请输入数字4）")
            print("0-退出-（请输入数字0）")

            function_num = int(input("请选择功能:"))

            if function_num == 1:
                print("欢迎使用从文件中读书数据保存到列表功能")
                self.do_read()
            elif function_num == 2:
                print("欢迎使用显示前10条数据和后10条数据功能")
                self.do_pd10display()
            elif function_num == 3:
                print("欢迎使用对数据进行汇总统计功能")
                self.do_statistic()
            elif function_num == 4:
                print("欢迎使用把统计数据以csv的形式保存到文件中功能")
                self.do_add_save()
            else:
                return

    # 从文件中读书数据保存到列表
    def do_read(self):
        # 一、检查文件是否存在
        path = "/课堂代码笔记/moveis_data.txt"
        if not os.path.exists(path):
            print("文件不存在")
        else:
            # 二、文件存在则打开， 使用读模式
            with open(path, "r") as f:
                index = 0
                header = []
                # 三、遍历并解析文件一行数据
                for line in f:
                    print(line)
                    # 因为数据中是以；分割的所以用 ；
                    movie = line.split(";")
                    movie[-1] = movie[-1].split("\n")[0]
                    print(movie)
                    if index == 0:
                        header = movie
                        index += 1
                    else:
                        # 四、解析的数据实例化电影对象， 并保存电影列表
                        # one 是电影实例对象，用于保存电影信息
                        one = Movie(movie[0], movie[1], movie[2], movie[3])
                        self.moveis.append(one)
                        index += 1

    # 显示前10条数据和后10条数据
    def do_pd10display(self):
        for i in self.moveis:
            print(i.no, i.mingcheng, i.piaofang, i.pingfen)

    # 对数据进行汇总统计
    def do_statistic(self):
        pass

    # 把统计数据以csv的形式保存到文件中
    def do_add_save(self):
        no = input("请输入序号")
        mingcheng = input("请输入名称")
        paiofang = input("请输入票房")
        pingfen = input("请输入评分")

        movei = Movie(no, mingcheng, paiofang, pingfen)
        self.moveis.append(movei)

        # 一、检查文件是否存在
        path = "/课堂代码笔记\\moveis_data.txt"
        if not os.path.exists(path):
            print("文件不存在")
        else:
            # 二、文件存在则打开， 使用读模式
            with open(path, "r") as f:
                # 构造数据行
                line = no + ";" + mingcheng + ";" + paiofang + ";" + pingfen + "\n"
                f.write(line)



if __name__ == '__main__':
    ms = Movie_ms()
    ms.menu()
